import type { BusGroupForm, BusGroupQuery, BusGroupVO } from './model';

import type { ID, IDS, PageResult } from '#/api/common';

import { commonExport } from '#/api/helper';
import { requestClient } from '#/api/request';

/**
 * 分页查询参观团巴士信息列表
 * @param params
 * @returns 参观团巴士信息列表
 */
export function busPage(params?: BusGroupQuery) {
  return requestClient.get<PageResult<BusGroupVO>>('/bus/page', { params });
}

/**
 * 查询参观团巴士信息列表
 * @param params
 * @returns 参观团巴士信息列表
 */
export function busList(params?: BusGroupQuery) {
  return requestClient.get<BusGroupVO[]>('/bus/list', { params });
}

/**
 * 导出参观团巴士信息列表
 * @param params
 * @returns 参观团巴士信息列表
 */
export function busExport(params?: BusGroupQuery) {
  return commonExport('/bus/export', params ?? {});
}

/**
 * 查询参观团巴士信息详情
 * @param id id
 * @returns 参观团巴士信息详情
 */
export function busInfo(id: ID) {
  return requestClient.get<BusGroupVO>(`/bus/${id}`);
}

/**
 * 根据参观团id查询巴士信息
 * @param groupId groupId
 * @returns 参观团巴士信息详情
 */
export function busInfoByGroupId(groupId: ID) {
  return requestClient.get<BusGroupVO>(`/bus/getByGroupId/${groupId}`);
}

/**
 * 新增参观团巴士信息
 * @param data
 * @returns void
 */
export function busAdd(data: BusGroupForm) {
  return requestClient.postWithMsg<void>('/bus', data);
}

/**
 * 更新参观团巴士信息
 * @param data
 * @returns void
 */
export function busUpdate(data: BusGroupForm) {
  return requestClient.putWithMsg<void>('/bus', data);
}

/**
 * 更新参观团巴士确认状态
 * @param data
 * @returns void
 */
export function busUpdateConfirmStatus(data: BusGroupForm) {
  return requestClient.putWithMsg<void>(`/bus/changeConfirmStatus`, data);
}

/**
 * 删除参观团巴士信息
 * @param id id
 * @returns void
 */
export function busRemove(id: ID | IDS) {
  return requestClient.deleteWithMsg<void>(`/bus/${id}`);
}
